const fs = require('fs');

// 逐行读取发送账户文本文件内容函数
function readTextFile(filePath, startLine, endLine) {
    return new Promise((resolve, reject) => {
        fs.readFile(filePath, 'utf8', (err, data) => {
            if (err) {
                reject(err);
                return;
            }

            // 将文本内容拆分成行数组
            const lines = data.split('\n');

            // 如果未指定结束行数，则读取至文件末尾
            if (!endLine || endLine > lines.length) {
                endLine = lines.length;
            }

            // 截取指定行数的文本内容
            const content = lines.slice(startLine - 1, endLine).join('\n');
            const Sincontent = content.trim().split('\n')//.map(line => line.trim());
            resolve(Sincontent);
        });
    });
}

// 逐行写入文本文件内容函数
function writeTextFile(filePath, startLine, newContent) {
    return new Promise((resolve, reject) => {
        fs.readFile(filePath, 'utf8', (err, data) => {
            if (err) {
                reject(err);
                return;
            }

            // 将文本内容拆分成行数组
            const lines = data.split('\n');

            // 替换指定行数的文本内容
            lines.splice(startLine - 1, 1, newContent);

            // 将行数组合并为新的文本内容
            const updatedContent = lines.join('\n');

            // 将更新后的文本内容写入文件
            fs.writeFile(filePath, updatedContent, 'utf8', (err) => {
                if (err) {
                    reject(err);
                    return;
                }

                resolve();
            });
        });
    });
}

// 导出逐行读取和写入文本文件函数，使其可以在其他文件中使用
module.exports = {
    readTextFile,
    writeTextFile
};
